ReactのMain Concept:2. Introducing JSX
from Reactのチュートリアルを読む
https://reactjs.org/docs/introducing-jsx.html
JSX
テンプレート言語っぽいけどJavaScriptがつかえるよ
Raectのコンポーネントをつくるよ
どうしてJSX?
関心の分離をマークアップとロジックを別ファイルにすることで行う方法もある
一方、Reactではその両方を含むコンポーネントと呼ばれる疎結合な単位で関心の分離を行う
componentの章でまた議論する
JSXの埋め込み表現
{}(curly braces)の中ではJSが使える
JSXでattributeを使う
divにattributeを渡す例:const element = <div tabIndex="0"></div>;
""を使えばstringのリテラル扱いになる
attributeでは""と{}の両方を同時に使うことはできない
camelCase
JSXでは子要素を書くことができる
レンダリングされるまえにエスケープする(すべてstringになる)のでユーザ入力をそのまま出してもOK
XSSを防ぐ
JXSはBabelによってReact.createElement()をつかった形式に変換されるので両者は同じ意味になる
React.createElement()は基本的にはReact elementsと呼ばれるオブジェクトを生成する
Reactはこのオブジェクトを読んでDOMを作成(更新)する